package belf.migrate.api.table.dbtype;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 初始化时加载各种数据库的所有字段类型。参考映射定义文件conf/db-types/DAMENG.xml。<br/>
 * 每种数据库的字段类型按数值类型、字符串类型、时间类型等大类型分开，方便管理和使用。
 */
@Data
@AllArgsConstructor
public class DBTypes {
    private String catalog;
    /** 数据类型的XML定义文件中设置的所有分组的名称 */
    private List<String> groups;
    /** 每个分组下对应的数据类型 */
    private Map<String, List<DataType>> types;

    public JsonObject toJson() {
        Gson gson = new Gson();
        String jsonString = gson.toJson(this);
        // 将 JSON 字符串解析为 JsonObject
        JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
        return jsonObject;
    }
}
